home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / os20 / util / sm_1_13c.lzh / SM / SM.anl < prev    next >
Text File  |  1992-09-16  |  25KB  |  684 lines

  1.  
  2.                    ScreenManager by Bernhard Möllemann
  3.                           all rights reserved
  4.  
  5.  
  6.                Hilfsprogramm zum Verwalten von Public-Screens
  7.  
  8.                               Version V1.13c
  9.  
  10.  
  11. ScreenManager (SM) ist ein kleines CLI-Programm, um Public-Screens zu
  12. öffnen, schließen oder noch andere Dinge zu tun. Die Screens können
  13. mit frei wählbarer Auflösung und Farben geöffnet werden. Sogar die
  14. DrawInfo, die bestimmt, welche Farbe für Glanzeffekte verwendet wird,
  15. ist wählbar.
  16. SM kann aber auch bestimmte Screens zum System-Default-Screen machen
  17. und die anderen Public-Screen-Modes ändern. Außerdem ist es möglich,
  18. sich eine Liste aller Screens im System ausgeben zu lassen oder sich über
  19. Auflösung und andere Eigenschaften eines Screens zu informieren.
  20.  
  21. Diese Anleitung gliedert sich in 6 Teile:
  22.   Copyright
  23.   CLI
  24.   Beispiele
  25.   Workbench
  26.   HotKeys
  27.   Schluß
  28. Das Copyright _muß_ jeder lesen! Wer schnell etwas ausprobieren
  29. will, sollte danach einfach die Beispiele durchprobieren. Die
  30. ernsthaften Anwender kommen allerdings nicht um die Lektüre der
  31. CLI-Optionen herum.
  32.  
  33.  
  34.                              Copyright
  35.                              ---------
  36.  
  37. Das Programmpaket ScreenManager ist Copyright 1992 Bernhard Möllemann.
  38. Alle Rechte vorbehalten.
  39.  
  40. Die Benutzung des Programms ScreenManager geschieht auf eigenes
  41. Risiko. Falls durch die Benutzung des Programms irgendein Schaden
  42. entsteht, kann der Autor dafür nicht haftbar gemacht werden.
  43.  
  44.  
  45. Dieses Programm ist frei kopierbar, solange folgende Regeln eingehalten
  46. werden:
  47.  
  48.  · Alle Dateien müssen kopiert werden. Das sind:
  49.    ScreenManager
  50.    ScreenManager.info
  51.    SM.doc
  52.    SM.anl
  53.    SM.ver
  54.    SM.doc.info
  55.    SM.anl.info
  56.    SM.ver.info
  57.  
  58.  · Alle obengennanten Dateien müssen sich in einem einzigen
  59.    Verzeichnis befinden, in dem nichts anderes steht.
  60.  
  61.  · Keine der Dateien darf verändert werden. Sie dürfen nur dann als
  62.    Archiv verbreitet werden, wenn sie sich mit einer frei kopierbaren
  63.    Amiga-Version eines der folgenden Programme entpacken lassen:
  64.      Zoo
  65.      Arc
  66.      LhArc
  67.      LhA
  68.      Zip
  69.      uudecode
  70.      compress
  71.      tar
  72.      ARJ
  73.  
  74.  · Es darf kein Gewinn mit dem Verkauf, Vertrieb oder Kopieren des
  75.    Programms erwirtschaftet werden.
  76.  
  77.  · Es darf ausschließlich auf folgenden Public-Domain Disketten
  78.    verbreitet werden:
  79.      AmigaLibDisks von Fred Fish
  80.      AUGS (Amiga User Group Switzerland)
  81.      AmigaJUICE
  82.      SAUG (Saarbrückener Amiga User Group)
  83.      Time
  84.  
  85.  · Es darf nicht ohne meine Einwilligung auf CD-ROMs verbreitet
  86.    werden, was auch AmigaLibDisks auf CD-ROM einschließt.
  87.  
  88. Alle, die eine der oben ausgeschlossenen Formen der Verbreitung
  89. wünschen, müssen eine schriftliche Erlaubnis des Autors haben.
  90.  
  91. Die gibt es vielleicht bei:
  92.  
  93.     Bernhard Möllemann
  94.     Luisenstraße 17
  95.  
  96.     D-7500 Karlsruhe 1
  97.  
  98.  
  99.  
  100.                                CLI
  101.                                ---
  102.  
  103. Wie gesagt, läßt sich mit dem ScreenManager das "Screen-System" des
  104. Amiga kontrollieren. Es ist nicht möglich, das mit der Maus zu
  105. machen. Vielleicht programmiere ich es noch, wenn genügend Leute
  106. Interesse daran haben. Ich _brauche_ es eigentlich nicht, aber je
  107. mehr Anfragen bei mir eintrudeln, desto höher wird der Anreiz.
  108.  
  109. Da es Public-Screens erst ab OS2.0 gibt, ist dieses natürlich
  110. Voraussetzung. Der ScreenManager sollte jedoch auch mit höheren
  111. Betriebssystemversionen laufen.
  112.  
  113. Bliebe eigentlich nur noch zu sagen, daß der ScreenManager auch
  114. resi(dent) gemacht werden kann!
  115.  
  116. Es gibt sechs verschiedene Aufgaben, die der ScreenManager lösen kann:
  117.   Öffnen von Screens
  118.   Schließen von Screens
  119.   Informationen über Screen oder Graphikmodus liefern
  120.   Liste der Graphikmodi ausgeben
  121.   Schon geöffnete Screens manipulieren
  122.   Globale Einstellungen ändern
  123.  
  124. Das geschieht über jeweils einen Aufruf mit einer oder mehrerer der
  125. folgenden Optionen (bitte nicht erschrecken!):
  126.   NAME:         Name des Screens
  127.   OPEN:         einen neuen Screen öffnen
  128.   CLOSE:        einen bestimmten Screen schließen
  129.   INFO:         gibt Infos über einen Screen aus
  130.   LIST:         listet alle Screens auf
  131.   EXPERT/FORCE: gibt mehr Infos aus und schaltet einige Abfragen ab
  132.   TITLE:        Screentitel bei OPEN
  133.   PLANES:       Anzahl der Bitplanes bei OPEN
  134.   MODE:         Auflösung bei OPEN. Ein paar Buchstaben
  135.   DISPID:       alternativ zu MODE ist dies die DisplayID eines neuen Screens
  136.   SIZE/POS:     Größe des Screens bei OPEN und Position beim Bewegen
  137.   DISPCLIP:     Größe des sichtbaren Screenbereichs bei OPEN
  138.   COLORS:       Farben bei OPEN. 3-stellige Hexadezimalzahlen
  139.   PENS:         Farbnummern für DrawInfo
  140.   FONT:         Font, der bei OPEN vom Screen benutzt werden soll
  141.   FONTSIZE:     Größe des obigen Fonts
  142.   CLOSEGAD:     versieht Screen mit einem CloseGadget
  143.   AUTOCLOSE:    schließt Screen automatisch beim Schließen des letzten
  144.                 Fensters
  145.   CX_TOFRONT:   HotKey, der den Screen nach vorne bringt
  146.   CX_DEFAULT:   HotKey, der den Screen zum System-Default-Screen macht
  147.   CX_PRIORITY:  Priorität, auf der die HotKeys eingeklinkt werden
  148.   TOFRONT:      Screen nach vorne bringen
  149.   TOBACK:       Screen nach hinten bringen
  150.   SHANGHAI:     Shanghai-Modus einschalten
  151.   NOSHANGHAI:   Shanghai-Modus ausschalten
  152.   POPPUB:       PopPub-Modus einschalten
  153.   NOPOPPUB:     PopPub-Modus ausschalten
  154.   DEFAULT:      Screen zum System-Default-Screen machen
  155.  
  156.  
  157. Das ist ziemlich viel und kompliziert dazu. Aber im Prinzip lassen
  158. sich ja nur sechs verschiedene Sachen damit machen, der Rest sind
  159. Parameter dafür.
  160.  
  161.  
  162. 1.1)  OPEN
  163.  
  164.   Öffnet einen neuen Screen. Wenn der Screen schon existiert, bekommt
  165.   man eine entsprechende Fehlermeldung serviert. Folgende Argumente
  166.   können bei OPEN noch angegeben werden:
  167.  
  168.  
  169.   1.1.1)  NAME:  Der Name des Screens.
  170.     Unter diesem Namen wird der Screen als Public-Screen angemeldet. Ist
  171.     kein TITLE angegeben, wird er auch als Titel verwendet. Der NAME muß
  172.     angegeben werden.
  173.  
  174.   1.1.2)  TITLE:  Der Screentitel.
  175.     Das ist der Text, der in der Titelzeile des Screens zu sehen ist.
  176.     Sichtbar ist er allerdings nur dann, wenn das aktive Fenster keinen
  177.     eigenen Titel setzt.
  178.  
  179.   1.1.3)  PLANES:  Anzahl der Bitplanes.
  180.     Sie legt hauptsächlich fest, wieviele verschiedene Farben dargestellt
  181.     werden können - es sind 2^PLANES. Für jeden Graphikmodus gelten
  182.     bestimmte Grenzen für PLANES.
  183.  
  184.     Werden sie überschritten, gibt es eine entsprechende Fehlermeldung.
  185.     Voreinstellung ist 2.
  186.  
  187.   1.1.4)  MODE:  legt den Grafikmodus fest.
  188.     Hier gibt man analog zu den Bezeichnungen in Prefs/ScreenMode den
  189.     Namen der Auflösung an. Dabei ist es nicht nötig, sich an die Groß-
  190.     Kleinschreibung zu halten.
  191.  
  192.     Wer Modi, die keinen Namen haben, verwenden möchte, gibt einen String
  193.     an, in dem jeder Buchstabe für eine bestimmte Eigenschaft steht. Wie
  194.     diese kombiniert werden können, und welche überhaupt verfügbar sind,
  195.     hängt von Graphikhardware und Monitor ab. Bei ungültigen Eingaben
  196.     wird eine entsprechende Fehlermeldung ausgegeben.
  197.  
  198.     Die einzelnen Buchstaben stehen für:
  199.       H: Hires           (Default: Lores)
  200.       L: Lace            (Default: Kein Interlace)
  201.       S: Superhires
  202.       E: Extrahalfbright
  203.       V: VGA
  204.       P: Productivity
  205.       A: A2024 mit 10Hz
  206.       F: A2024 mit 15Hz
  207.       X: HAM
  208.  
  209.     Der gewünschte Modus wird einfach durch Hintereinanderschreiben der
  210.     einzelnen Buchstaben angegeben - z.B. MODE=SL für SuperHires-Lace
  211.  
  212.     Der Default-Mode kann leider nicht vom Workbench-Screen kopiert
  213.     werden, da das ein unbeabsichtigtes Öffnen des WB-Screens zur Folge
  214.     haben kann.
  215.  
  216.   1.1.5)  DISPID:  DisplayID des zu öffnenden Screens.
  217.     Sie kann alternativ zu MODE angegeben werden. Es darf allerdings nur
  218.     MODE oder DISPID aufgeführt sein, nicht beides.
  219.  
  220.     Gültige Werte für eine DisplayID sind in graphics/displayinfo.h zu
  221.     finden, vorausgesetzt, der entsprechende Monitor steht zur Verfügung.
  222.     (Die Liste gibt auch "ScreenManager LIST DISPID" aus.)
  223.  
  224.     Da der ScreenManager keine DualPlayfield-Screens unterstützt,
  225.     werden entsprechene DisplayIDs nicht akzeptiert.
  226.  
  227.     Die DISPID muß hexadezimal angegeben werden. Es dürfen $ oder 0x
  228.     davor stehen.
  229.  
  230.   1.1.6)  SIZE:  Größe des Screens in Pixeln.
  231.     Voreingestellt ist Overscan-Text. Die Größe wird in dem Format
  232.     LEFT,TOP,WIDTH,HEIGHT angegeben.
  233.  
  234.     Da WIDTH und HEIGHT wohl öfter gebraucht werden als LEFT und TOP,
  235.     gelten, wenn nur zwei Werte angegeben sind, diese als WIDTH und
  236.     HEIGHT. Zur besseren Lesbarkeit können sie auch als WIDTHxHEIGHT
  237.     statt WIDTH,HEIGHT angegeben werden.
  238.  
  239.     Um die Overscan-Größen bequemer handhaben zu können, kann man auch
  240.     die Overscan-Bereiche, die das System anbietet, namentlich angeben.
  241.  
  242.     Erlaubte Overscan-Namen sind:
  243.       OSCAN_NORM  Hardware-Default. Was C= offiziell als Auflösung angibt.
  244.       OSCAN_TXT   Text-Overscan, wird in Prefs eingestellt (Text auch in
  245.                   Ecken noch lesbar). OSCAN_TEXT ist auch erlaubt.
  246.       OSCAN_STD   Standard-Overscan, wird in Prefs eingestellt (Bild füllt
  247.                   gerade Monitor aus). OSCAN_STANDARD ist auch erlaubt.
  248.       OSCAN_MAX   Maximaler Overscan, wird durch Hardware festgelegt
  249.  
  250.     Die tippfaulen Leute können den _ oder das OSCAN auch weglassen.
  251.  
  252.     Um von diesen Werten abweichende Größen zu erhalten, schreibt man
  253.     hinter den Overscan - mit einem Doppelpunkt getrennt - eine
  254.     Größenangabe. In diesem Fall wird der entsprechende Overscan benutzt
  255.     und die Größenangaben werden auf die Overscan-Größe _addiert_.
  256.  
  257.     Also sieht eine fertige SIZE-Angabe z.B. so aus:
  258.  
  259.       SIZE=OSCAN_STD:-10,-10,+20,+20
  260.  
  261.     Das ergibt einen Screen, bei dem die Größe den Standard-Overscan in
  262.     jeder Richtung um 10 Pixel überragt.
  263.  
  264.   1.1.7)  DISPCLIP:  Größe des sichtbaren Bereichs des Screens.
  265.     Hier gilt das gleiche Format wie für SIZE.
  266.  
  267.   1.1.8)  COLORS:  legt die Farben als RGB-Informationen fest.
  268.     Sie werden als 3-stellige Hexadezimalzahlen eingegeben und durch
  269.     Komma getrennt. Dabei darf kein führendes $ oder 0x auftauchen.
  270.  
  271.   1.1.9)  PENS:  Farbstifte, die für 3D-Darstellung benutzt werden.
  272.     Dabei ist jeder Stift für bestimmte Effekte vorgesehen. Eine nähere
  273.     Erläuterung ist in dem Include-File intuition/screens.h bei der
  274.     Beschreibung der DrawInfo.Pens zu finden.
  275.  
  276.     Jedes Zeichen wird als (hexadezimale) Farbnummer der bei COLORS
  277.     angegebenen Farben interpretiert. Daraus folgt, daß für die Stifte
  278.     nur die ersten 16 Farben zur Verfügung stehen. Wer _wirklich_ mehr
  279.     braucht, kann mir ja schreiben.
  280.  
  281.     Man muß nicht alle Stifte angeben, aber man muß alle Stifte, die
  282.     _vor_ einem gewünschten Stift liegen, spezifizieren.
  283.  
  284.     Für die Farbstifte gilt:
  285.  
  286.     Stift Bezeichnung      wird verwendet für ...
  287.       1   DETAILPEN        Schrift (1.3-kompatibel)
  288.       2   BLOCKPEN         Fülloperationen (1.3-kompatibel)
  289.       3   TEXTPEN          normale Beschriftungen
  290.       4   SHINEPEN         helle Kanten an 3D-Objekten
  291.       5   SHADOWPEN        dunkle Kanten an 3D-Objekten
  292.       6   FILLPEN          Hintergrund aktivierter Elemente \ z.B. aktiver
  293.       7   FILLTEXTPEN      Text auf aktivierten Elementen   / Fensterrahmen
  294.       8   BACKGROUNDPEN    Hintergrund - muß auf 0 gesetzt werden
  295.       9   HIGHLIGHTTEXTPEN hervorgehobene Beschriftungen
  296.  
  297.     Das klingt ziemlich kompliziert und das Ergebnis ist auch nicht immer
  298.     ganz vorhersehbar. Am besten fängt man mit einem der unten aufgeführten
  299.     Beispiele an und modifiziert es, dann bekommt man schnell ein Gefühl
  300.     dafür.
  301.  
  302.   1.1.10)  FONT:  Font, der dann Default-Font des Screens wird.
  303.     Das kann auch ein proportionaler Font sein. Konnte der Font nicht
  304.     gefunden werden, wird der Screen trotzdem mit dem Default-Font
  305.     des Systems geöffnet! (Dieser Font wird mit dem Voreinstellungsprogramm
  306.     "Font" gesetzt.)
  307.  
  308.     Das .font am Ende ist optional. Außerdem kann die gewünschte Größe X
  309.     auch mit .X angehängt werden: z.B. FONT=diamond.12
  310.  
  311.   1.1.11)  FONTSIZE:  Größe des obigen Fonts.
  312.     Hier kann so ziemlich alles angegeben werden, da die neue
  313.     diskfont.library im Zweifelsfalle einen Font anderer Größe
  314.     entsprechend skaliert.
  315.  
  316.     Diese Option gibt hübsche Effekte mit dummen Programmen!
  317.  
  318.   1.1.12)  CLOSEGAD:  Hängt ein Closegadget an den Screen.
  319.     Damit wird ein Schließsymbol (Closegadget) in der linken oberen Ecke
  320.     des Screens eingerichtet. Man kann dann einfach per Mausklick den
  321.     Screen wie ein Fenster schließen.
  322.  
  323.   1.1.13)  AUTOCLOSE:  Schließt den Screen automatisch nach Benutzung.
  324.     Ist diese Option angegeben, wird der Screen nach dem Verschinden des
  325.     letzten Fensters geschlossen.
  326.  
  327.   1.1.14)  CX_TOFRONT:  HotKey, um Screen nach vorne zu bringen.
  328.     Hiermit kann man einen HotKey (keine heiße Taste, sondern eine
  329.     Abkürzung) definieren, mit dem der Screen bei Bedarf in den
  330.     Vordergrund gebracht werden kann.
  331.  
  332.     Die Definition entspricht dem Standard der commodities.library. Wie
  333.     eine solche Tastenkombination beschrieben wird, ist weiter unten
  334.     erläutert.
  335.  
  336.   1.1.15)  CX_DEFAULT:  HotKey, um Screen zum System-Default-Screen zu machen.
  337.     Analog zu obigem ist das ein HotKey, mit dem der Screen zum System-
  338.     Default-Screen erklärt werden kann. Auch hier gelten die weiter unten
  339.     nochmal aufgeführten Definitionen der commodities.library.
  340.  
  341.   1.1.16)  CX_PRIORITY:  Priorität für obige HotKeys.
  342.     Wenn sie nicht angegeben ist, wird ein Default von 0 benutzt.
  343.  
  344.  
  345.   1.1.17)  Weitere Optionen
  346.     Zusätzlich kann man noch die Optionen
  347.  
  348.       SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT oder TOBACK
  349.  
  350.     angeben. Eine nähere Beschreibung folgt noch, da diese auch verwendet
  351.     werden können, ohne einen Screen zu öffnen.
  352.  
  353.  
  354.   1.1.18)  FORCE: Schaltet einige Sicherheitsabfragen aus.
  355.  
  356.     In diesem Modus sind die Tests, ob die Hardware des Rechners die
  357.     angegebenen Größen für SIZE, DISPCLIP und PLANES überhaupt darstellen
  358.     kann, ausgeschaltet. Wenn der Rechner dann Müll anzeigt oder gar
  359.     abstürzt, bitte KEINEN Bugreport an C= oder mich!
  360.  
  361.  
  362.  
  363. 1.2)  CLOSE
  364.  
  365.   Schließt einen vorhandenen Screen.
  366.  
  367.  
  368.   1.2.1)  NAME:  Name des Screens.
  369.  
  370.     Die Groß-/Kleinschreibung muß nicht korrekt sein. Sind aber mehrere
  371.     Screens da, die passen könnten, wird der erste genommen, der gefunden
  372.     wird. Ist der NAME richtig geschrieben, wird _immer_ der
  373.     entsprechende Screen genommen.
  374.  
  375.     Wenn man Angelas pattern.library (Fish 625) installiert hat, kann man
  376.     sogar ein Pattern angeben - insbesondere wo* für Workbench!
  377.  
  378.     Im Moment gibt es zwei spezielle Namen:
  379.       * steht für den Screen, auf dem die Console dieses Prozesses liegt.
  380.       . steht für den System-Default-Screen
  381.  
  382.     Diese Konventionen für den Namen gelten überall, außer natürlich bei
  383.     OPEN.
  384.  
  385.  
  386.   1.2.2)  FORCE:  Schließt auch fremde Screens.
  387.  
  388.     Damit können auch Screens, die weder vom ScreenManager noch von der
  389.     Workbench stammen, geschlossen werden.
  390.  
  391.     Allerdings ist dann das Programm, welches sie geöffnet hat, nicht
  392.     unbedingt darüber informiert. Wenn es später versucht, ein Fenster auf
  393.     diesem Screen zu öffnen, kommt es zum Absturz. Auch kann es sein, daß
  394.     zum Screen gehörige Resourcen (z.B. sein Font) nicht freigegeben werden.
  395.  
  396.  
  397. 1.3)  LIST
  398.  
  399.   Gibt eine Liste der Screens oder Auflösungen aus.
  400.  
  401.  
  402.   1.3.1)  <ohne Parameter>:  Zeigt die Screenliste an.
  403.  
  404.     Ausgegeben werden Name, Titel, Auflösung und Farben des jeweiligen
  405.     Screens.
  406.  
  407.     Dahinter steht <SM>, wenn der Screen vom ScreenManager geöffnet wurde.
  408.     Es kann dort auch noch DEFAULT stehen, wenn es der System-Default-Screen
  409.     ist, oder PRIVATE, wenn dieser Screen im Moment nicht öffentlich ist.
  410.  
  411.   1.3.2)  DISPID:  Zeigt sämtliche Auflösungen an.
  412.  
  413.     Es wird eine Liste aller Darstellungsmodi, die dem System bekannt
  414.     sind, ausgegeben.
  415.  
  416.     Es stehen, wenn vorhanden, auch der Name und die Verfügbarkeit dabei.
  417.  
  418.   1.3.3)  MODE:  Zeigt Auflösungen an.
  419.  
  420.     Gibt eine Liste der Darstellungsmodi, die dem System namentlich
  421.     bekannt sind, aus, und zeigt deren Verfügbarkeit an.
  422.  
  423.  
  424.  
  425. 1.4)  INFO
  426.  
  427.   Gibt Informationen über einen Screen oder einen Darstellungsmodus aus.
  428.  
  429.  
  430.   1.4.1) <ohne Parameter>:  Druckt die momentan gültigen Public-Screen-Modes
  431.     aus.
  432.  
  433.   1.4.2)  NAME:  Zeigt Eigenschaften dieses Screens.
  434.     Es werden z.B. seine Auflösung und Farbanzahl ausgegeben. Auch hier
  435.     gelten die bei CLOSE erwähnten Sonderzeichen.
  436.  
  437.   1.4.3)  DISPID/MODE:  Gibt Infos über den Darstellungsmodus aus.
  438.     Es sind z.B. maximale Farbanzahl und minimale/maximale Größe eines
  439.     solchen Screens dabei.
  440.  
  441.  
  442.   1.4.4)  EXPERT:  Gibt etwas mehr Infos aus.
  443.     Diese Option kann bei allen Parametern von INFO zusätzlich angegeben
  444.     werden. Es werden dann die Strukturen NameInfo, DisplayInfo,
  445.     DimensionInfo und MonitorInfo angezeigt.
  446.  
  447.  
  448. 1.5)  Geöffnete Screens manipulieren.
  449.  
  450.   Folgende Optionen modifizieren die Modes eines vorhandenen
  451.   Public-Screens. Dafür muß natürlich auch dessen Name angegeben sein.
  452.   Auch hier gelten wieder die Abkürzungen, die bei CLOSE erläutert
  453.   wurden.
  454.  
  455.   All diese Optionen können natürlich auch beim Öffnen eines neuen
  456.   Screens angegeben werden.
  457.  
  458.   1.5.1)  COLORS:  Nachträgliches Ändern der Farben.
  459.     Damit kann die Farbpalette eines Screens im nachhinein geändert
  460.     werden. Die Farben werden als 3-stellige Hexadezimalzahlen
  461.     eingegeben und durch Komma getrennt.
  462.  
  463.     Achtung! Werden die Farben des Workbench-Screens geändert, kriegt der
  464.     IPrefs-Demon das nicht mit - genausowenig wie Intuition selber.
  465.     Es kann dann zu "Effekten" bei Benutzung von Prefs/Palette kommen.
  466.  
  467.   1.5.2)  POS:  Setzt die Screenposition neu.
  468.     Damit kann die Position eines Screens nachträglich geändert werden.
  469.     Das Format ist "POS=x,y".
  470.  
  471.   1.5.3)  PLANES:  Setzt die Anzahl der Planes des Screens neu.
  472.     Diese Option wird nur zusammen mit FORCE akzeptiert - sonst wird
  473.     lediglich eine Warnung ausgegeben. Sie ermöglicht es, die Anzahl der
  474.     Planes des Screens zu erhöhen oder zu reduzieren.
  475.  
  476.     Da nicht bekannt sein kann, ob die Größe der BitMap-Struktur, in der
  477.     für jede Plane ein Zeiger stehen muß, für die verlangte Anzahl der
  478.     Planes ausreicht, _kann_ es passieren, daß bei Erhöhung der Planes
  479.     fremder Speicher überschrieben wird!!! Also bitte _mehr_ als
  480.     vorsichtig sein.
  481.  
  482.   1.5.4)  DEFAULT:  Screen zum System-Default-Screen machen.
  483.  
  484.   1.5.5)  TOFRONT:  Screen nach vorne bringen.
  485.  
  486.   1.5.6)  TOBACK:   Screen nach hinten bringen.
  487.  
  488.   1.5.7)  CX_TOFRONT:  Ändert den HotKey zum Nach-vorne-bringen des Screens.
  489.     Mit CX_TOFRONT="" wird er abgeschaltet.
  490.  
  491.   1.5.8)  CX_DEFAULT:  Ändert den HotKey, der den Screen zum System-Default-
  492.     Screen macht. Auch er läßt sich mit dem Leerstring ausschalten.
  493.  
  494.  
  495.  
  496. 1.6)  Globale Einstellungen Ändern.
  497.  
  498.   Diese Optionen beeinflussen globale Einstellungen und können auch
  499.   ohne Screen angewandt werden:
  500.  
  501.   1.6.1)  SHANGHAI:  Shanghai-Mode einschalten.
  502.     Im Shanghai-Modus gehen auch die Fenster, die früher auf der Workbench
  503.     aufgingen, auf dem System-Default-Screen auf.
  504.  
  505.     Damit kann man vor allem alte Programme, die noch nichts über das
  506.     Konzept des Default-Screens wissen, von der Workbench fernhalten.
  507.  
  508.   1.6.2)  NOSHANGHAI:  Shanghai-Mode ausschalten.
  509.  
  510.   1.6.3)  POPPUB:  PopPub-Mode einschalten.
  511.     In diesem Modus kommt der Screen nach vorne, sowie ein Fenster darauf
  512.     geöffnet wird.
  513.  
  514.   1.6.4)  NOPOPPUB:  PopPub-Mode ausschalten.
  515.  
  516.  
  517.  
  518.                              Beispiele
  519.                              ---------
  520.  
  521. Hier noch ein paar Beispiele:
  522.  
  523.   ScreenManager OPEN NobelScreen MODE=H PLANES=3 PENS=121657404
  524.   COLORS=960,DDF,03C,FF1,DC0,730,F83,C30 DEFAULT SHANGHAI POPPUB CLOSEGAD
  525.   CX_PRI=10 CX_TOFRONT="LCOMMAND s" CX_DEFAULT="LCOMMAND SHIFT s"
  526.  
  527.   ScreenManager OPEN BlueScreen DISPID=$00029004 PLANES=3 PENS=171657404
  528.   SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT
  529.   COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F FONT=courier.13 DEFAULT TOBACK
  530.  
  531.   ScreenManager OPEN NessyScreen MODE=PAL:Hires PLANES=2 SIZE=640×256
  532.   PENS=021123103 COLORS=69A,FEE,002,F7C DEFAULT AUTOCLOSE CLOSEGAD POPUP
  533.  
  534.   ScreenManager OPEN SimpleWB MODE=H DEFAULT SHANGHAI POPPUB
  535.  
  536.   ScreenManager LIST
  537.  
  538.   ScreenManager LIST DISPID
  539.  
  540.   ScreenManager INFO DISPID=$00031004 EXPERT
  541.  
  542.   ScreenManager CLOSE BlueScreen
  543.  
  544. Diese Kommandos müssen in jeweils _einer_ Zeile eingegeben werden.
  545.  
  546. Um auf einem solchen Screen Fenster öffnen zu können, muß man natürlich
  547. ein Programm haben, das sich nicht krampfhaft an die Workbench klammert,
  548. sondern seine Fenster auf dem System-Default-Screen öffnet. Das tun
  549. zumindest die Voreinstellungseditoren Time und Font sowie CON: (und
  550. fälschlicherweise IconEdit *ärger*).
  551.  
  552. Ein Console-Window kann aber auch auf einem Screen, der _nicht_
  553. System-Default-Screen ist, aufgehen:
  554.  
  555.   CON:0/15/640/185/MeinFenster/CLOSE/SCREENNobelScreen.
  556.  
  557. Der Display-Handler der WShell kann das natürlich auch.
  558.  
  559.  
  560.  
  561.                              Workbench
  562.                              ---------
  563.  
  564. Damit die Freunde der Workbench nicht ganz leer ausgehen, kann der
  565. ScreenManager auch die Merkmale (ToolTypes) als Argumente
  566. interpretieren.
  567.  
  568. Die ToolTypes entsprechen den oben aufgeführten Kommandozeilenargumenten.
  569. Es gibt allerdings ein paar Unterschiede:
  570.  
  571.     NOSHANGHAI und NOPOPPUB
  572.  
  573.   gibt es nicht mehr. Sie müssen durch SHANGHAI=FALSE oder POPPUB=0 ersetzt
  574.   werden.
  575.  
  576.   Es gibt einen zusätzlichen ToolType WINDOW. Das Argument wird als
  577.   Filename genommen, in den die Ausgaben z.B. bei LIST wandern. Als
  578.   File gilt natürlich auch eine Fensterbeschreibung wie z.B.
  579.  
  580.     CON:////ScreenManager-Output/CLOSE
  581.  
  582.   Ist WINDOW nicht angegeben, wird kein Fenster geöffnet und eventuelle
  583.   Fehler werden über Requester gemeldet.
  584.  
  585. Die Argumente müssen, auch wenn sie Leerzeichen enthalten, ohne
  586. Anführungszeichen eingegeben werden, da im Gegensatz zur
  587. Kommandozeile ja klar ist, wo das Argument aufhört.
  588.  
  589. Wurde ein Projekt mit dem ScreenManager als Default-Tool angeklickt,
  590. werden die ToolTypes des ScreenManager als Defaults genommen und dann
  591. von denen des Projekts überschrieben.
  592.  
  593. So kann man sich beispielsweise für jeden Screen, den man oft benutzt
  594. (bei mir ShellScreen und Workbench), ein Projekt mit NAME=<ScreenName>
  595. anlegen und einen ScreenManager mit dem ToolType DEFAULT.
  596.  
  597. Klickt man jetzt erst auf das Projekt-Icon und dann zweimal mit
  598. gedrückter Shift-Taste auf den ScreenManager, wird der Screen
  599. <ScreenName> zum System-Default-Screen.
  600.  
  601. Je nachdem, welches Pärchen ich "doppelklicke", kann ich so den
  602. ShellScreen oder den Workbench-Screen zum System-Default-Screen
  603. machen. Das Gleiche geht z.B. auch mit POS - und fertig ist der
  604. WB-Klick-Baukasten.
  605.  
  606.  
  607.  
  608.                              HotKeys
  609.                              -------
  610.  
  611. Für die, die den dicken Schuber gerade nicht greifbar haben, hier
  612. noch die Sondertasten von Commodities V37. (kein Anspruch auf
  613. Vollständigkeit 8-):
  614.  
  615. Events:
  616.   RawKey, RawMouse, Event, PointerPos,
  617.   Timer, NewPrefs, DiskRemoved, DiskInserted
  618.  
  619. Größtenteils nicht sehr sinnvoll, aber ganz lustig, wenn bei einem
  620. DiskInsert der Screen mit der Shell nach vorne kommt. Außerdem ist
  621. Timer noch ganz interessant, da man sonst keinen Qualifier allein
  622. ansprechen kann. Aber natürlich will ich das nicht empfehlen.
  623. Allerdings bin ich der Meinung, daß sich jeder sein System kaputt-
  624. konfigurieren darf, wie er will - nur beschweren darf er sich dann
  625. nicht.
  626.  
  627. Qualifier:
  628.   LShift, RShift, CapsLock, Control, LAlt, RAlt, LCommand, RCommand,
  629.   NumericPad, Repeat, RelativeMouse, Shift, Caps, Alt, UpStroke
  630.  
  631. Keys:
  632.   (MidButton, RButton, LeftButton)
  633.   Comma, Space, BackSpace, Tab, Enter, Return, Esc, Del
  634.   Up, Down, Right, Left
  635.   F1, F2, F3, F4, F5, F6, F7, F8, F9, F10
  636.   Help
  637.   sowie alle normalen druckbaren Zeichen, die dann für sich selbst stehen
  638.  
  639. Eine Hotkey-Definition daraus sieht so aus:
  640.  
  641.   [<Qualifier> <Qualifier> ... ] <Event>|<Key>
  642.  
  643. Da die Qualifier von der auslösenden Taste durch ein Leerzeichen getrennt
  644. werden, muß der ganze Ausdruck in Anführungszeichen gepackt werden. Also
  645. etwa so:
  646.  
  647.   CX_TOFRONT="LCommand s"
  648.   CX_DEFAULT="LCommand Shift s" oder CX_DEFAULT="LCommand S"
  649.  
  650. Sämtliche Bezeichner können sowohl groß als auch klein eingegeben
  651. werden. Um HotKeys mit großen Buchstaben auslösen zu können (wie die
  652. Alternative des zweiten Beispiels), muß dann natürlich noch die
  653. Shift-Taste gedrückt werden (oder die KeyMap ist maximal mystisch...).
  654.  
  655.  
  656.  
  657.                              Schluß
  658.                              ------
  659. Vielen Dank an Franky (Frank Neumann) für die englische Übersetzung.
  660. Vielen Dank auch an Angela Schmidt für Bug-Reports und Anregungen.
  661.  
  662. Ich danke auch:
  663.   Holger Gzella
  664.   Michael (Mick) Hohmann
  665.   Martin Horneffer
  666.   Georg (Gio) Magschok
  667.   und Ralph Babel für sein Guru-Buch.
  668.  
  669. Bug-Reports, Verbesserungsvorschläge, Glückwünsche, Schokokugeln,
  670. Flames, GUIs und anderes (keine Briefbomben oder Raubkopien) an:
  671.  
  672.     zza@rz.uni-karlsruhe.de
  673.  
  674. oder
  675.  
  676.     Bernhard Möllemann
  677.     Luisenstraße 17
  678.  
  679.     7500 Karlsruhe 1
  680.  
  681.     Germany
  682.  
  683.  
  684.